<!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>&#x811a;&#x672c;&#x6307;&#x5bfc;</title>
        <style>
/* From extension vscode.github */
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

.vscode-dark img[src$=\#gh-light-mode-only],
.vscode-light img[src$=\#gh-dark-mode-only] {
	display: none;
}

</style>
        
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/markdown.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/highlight.css">
<style>
            body {
                font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif;
                font-size: 14px;
                line-height: 1.6;
            }
        </style>
        <style>
.task-list-item {
    list-style-type: none;
}

.task-list-item-checkbox {
    margin-left: -20px;
    vertical-align: middle;
    pointer-events: none;
}
</style>
        
    </head>
    <body class="vscode-body vscode-light">
        <h1 id="脚本指导">脚本指导</h1>
<h2 id="标签用法">标签用法</h2>
<ol>
<li>说明<br>
除不需要参数的语句外（default），每个操作或声明都有开始标签与结束标签，在开始标签和结束标签中包含需要的参数<br>
开始标签、结束标签、参数之间都必须有分割符，若无分割符会识别错误，如<pre><code class="language-xml"><span class="hljs-comment">&lt;!--注释--&gt;</span>
<span class="hljs-comment">&lt;!--上述注释语句只是在本说明文档中标记语句为注释，在脚本中并不支持这样的注释，下同--&gt;</span>

&lt;标签名&gt; 参数 &lt;/标签名&gt;
<span class="hljs-comment">&lt;!--需要参数的写法--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">default</span>&gt;</span>
<span class="hljs-comment">&lt;!--不需要参数的default--&gt;</span>
</code></pre>
</li>
<li>基础标签用法及含义<br>
在下面说明中若开始标签、结束标签在同一行，分割符可以为空格，制表符，换行符等<br>
若不在同一行，则必须按所示将参数与标签用换行符分割，否则会抛出语法错误<br>
缩进，非必要的换行符等不影响脚本分析结果<pre><code class="language-xml"><span class="hljs-comment">&lt;!--操作语句--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">input</span>&gt;</span> 变量1 变量2 …… <span class="hljs-tag">&lt;/<span class="hljs-name">input</span>&gt;</span>
<span class="hljs-comment">&lt;!--从客户端获得输入，写入变量中--&gt;</span>
<span class="hljs-comment">&lt;!--一个输入对应一个变量--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">find</span>&gt;</span> 变量 <span class="hljs-tag">&lt;/<span class="hljs-name">find</span>&gt;</span>
<span class="hljs-comment">&lt;!--在数据库中查找相应变量，并返回结果给客户端，未找到返回&quot;变量值 not found&quot;--&gt;</span>
<span class="hljs-comment">&lt;!--变量一定是通过input申请并初始化的，否则会抛出语法错误--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">then</span>&gt;</span> 事件名 <span class="hljs-tag">&lt;/<span class="hljs-name">then</span>&gt;</span>
<span class="hljs-comment">&lt;!--跳转到该事件，可以跳转到本身--&gt;</span>
<span class="hljs-comment">&lt;!--事件一定是在脚本中申请命名了的，否则会抛出语义错误--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">output</span>&gt;</span> 
    字符串
<span class="hljs-tag">&lt;/<span class="hljs-name">output</span>&gt;</span>
<span class="hljs-comment">&lt;!--向客户端输出这条字符串--&gt;</span>    




<span class="hljs-comment">&lt;!--控制语句，控制语句的具体使用方法见语法结构部分--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">event</span>&gt;</span> 
    命名
    操作 
<span class="hljs-tag">&lt;/<span class="hljs-name">event</span>&gt;</span>
<span class="hljs-comment">&lt;!--申请一个事件，相当于C语言的函数--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">name</span>&gt;</span> 名字 <span class="hljs-tag">&lt;/<span class="hljs-name">name</span>&gt;</span>
<span class="hljs-comment">&lt;!--为事件命名--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">switch</span>&gt;</span> 变量 <span class="hljs-tag">&lt;/<span class="hljs-name">swtich</span>&gt;</span>
<span class="hljs-comment">&lt;!--选择用来作为判断条件的变量--&gt;</span>
<span class="hljs-comment">&lt;!--变量一定是通过input申请并初始化的，否则会抛出语法错误--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">case</span>&gt;</span>
    字符串
<span class="hljs-tag">&lt;/<span class="hljs-name">case</span>&gt;</span>
<span class="hljs-comment">&lt;!--若选择的变量等于字符串的值，执行这条语句的后一条语句，否则跳过后一条语句--&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">default</span>&gt;</span>
<span class="hljs-comment">&lt;!--与case相同，用以选择执行命令，但表示匹配任何条件--&gt;</span>
</code></pre>
</li>
</ol>
<h2 id="语法结构">语法结构</h2>
<ol>
<li>固定语法结构<br>
缩进，非必要的换行符等不影响脚本分析结果，可自己编写美观的代码<pre><code class="language-xml"><span class="hljs-comment">&lt;!--申请事件--&gt;</span>
<span class="hljs-comment">&lt;!--所有的操作都必须事件中，代码由若干事件构成--&gt;</span>
<span class="hljs-comment">&lt;!--必须先命名再编写操作，否则会抛出语法错误报错--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">event</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">name</span>&gt;</span> 事件名1 <span class="hljs-tag">&lt;/<span class="hljs-name">name</span>&gt;</span>
    操作
    ……
    <span class="hljs-comment">&lt;!--演示选择执行--&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">switch</span>&gt;</span> 变量 <span class="hljs-tag">&lt;/<span class="hljs-name">swtich</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">case</span>&gt;</span>
            字符串1
        <span class="hljs-tag">&lt;/<span class="hljs-name">case</span>&gt;</span>
            一条操作语句
        <span class="hljs-tag">&lt;<span class="hljs-name">case</span>&gt;</span>
            字符串2
        <span class="hljs-tag">&lt;/<span class="hljs-name">case</span>&gt;</span>
            一条操作语句 
        <span class="hljs-tag">&lt;<span class="hljs-name">default</span>&gt;</span>
            一条操作语句 
    <span class="hljs-comment">&lt;!--选择执行，不支持嵌套--&gt;</span>
    <span class="hljs-comment">&lt;!--若满足case中条件，则执行后一条操作语句后退出选择执行；default语句和case语句效果相同，但表示匹配任何条件--&gt;</span>
    <span class="hljs-comment">&lt;!--default语句可以省略--&gt;</span>
    <span class="hljs-comment">&lt;!--没有case语句，相当于switch语句不起作用--&gt;</span>
    <span class="hljs-comment">&lt;!--若case，default语句前没有switch语句，则会直接跳过这个判断和其后一条操作语句--&gt;</span>
    <span class="hljs-comment">&lt;!--若case，default语句后有多条操作语句，相当于
        swtich语句
            判断语句
                操作语句
        操作语句    选择执行在这里被打断，从这条操作语句开始顺序执行，其后判断语句视为上一条说明
    --&gt;</span>
    操作
    ……
<span class="hljs-tag">&lt;/<span class="hljs-name">event</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">event</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">name</span>&gt;</span> 事件名2 <span class="hljs-tag">&lt;/<span class="hljs-name">name</span>&gt;</span>
    操作
    ……
<span class="hljs-tag">&lt;/<span class="hljs-name">event</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">event</span>&gt;</span>
……
</code></pre>
</li>
<li>样例代码<pre><code class="language-xml"><span class="hljs-comment">&lt;!--用户输入a跳转到a事件，输入b跳转到b事件，不是a与b要求用户再次输入--&gt;</span>
<span class="hljs-comment">&lt;!--a事件查找用户输入的姓名的相关信息--&gt;</span>
<span class="hljs-comment">&lt;!--b事件判断用户输入的姓名是不是李四--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">event</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">name</span>&gt;</span> a <span class="hljs-tag">&lt;/<span class="hljs-name">name</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">output</span>&gt;</span>
        this is a!
        请输入姓名
    <span class="hljs-tag">&lt;/<span class="hljs-name">output</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span>&gt;</span> 姓名 <span class="hljs-tag">&lt;/<span class="hljs-name">input</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">find</span>&gt;</span> 姓名 <span class="hljs-tag">&lt;/<span class="hljs-name">find</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">event</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">event</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">name</span>&gt;</span> b <span class="hljs-tag">&lt;/<span class="hljs-name">name</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">output</span>&gt;</span>
        this is b!
        请输入姓名
    <span class="hljs-tag">&lt;/<span class="hljs-name">output</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span>&gt;</span> 姓名 <span class="hljs-tag">&lt;/<span class="hljs-name">input</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">switch</span>&gt;</span> 姓名 <span class="hljs-tag">&lt;/<span class="hljs-name">switch</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">case</span>&gt;</span>
        李四
        <span class="hljs-tag">&lt;/<span class="hljs-name">case</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">output</span>&gt;</span>
                是李四
            <span class="hljs-tag">&lt;/<span class="hljs-name">output</span>&gt;</span>    
<span class="hljs-tag">&lt;/<span class="hljs-name">event</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">event</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">name</span>&gt;</span> main <span class="hljs-tag">&lt;/<span class="hljs-name">name</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">output</span>&gt;</span>
        please next event(a for a,b for b)!
    <span class="hljs-tag">&lt;/<span class="hljs-name">output</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">input</span>&gt;</span> goto <span class="hljs-tag">&lt;/<span class="hljs-name">input</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">switch</span>&gt;</span> goto <span class="hljs-tag">&lt;/<span class="hljs-name">switch</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">case</span>&gt;</span> 
            a 
        <span class="hljs-tag">&lt;/<span class="hljs-name">case</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">then</span>&gt;</span> a <span class="hljs-tag">&lt;/<span class="hljs-name">then</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">case</span>&gt;</span> 
            b 
        <span class="hljs-tag">&lt;/<span class="hljs-name">case</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">then</span>&gt;</span> b <span class="hljs-tag">&lt;/<span class="hljs-name">then</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">default</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">then</span>&gt;</span> main <span class="hljs-tag">&lt;/<span class="hljs-name">then</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">event</span>&gt;</span>
</code></pre>
</li>
</ol>

        
        
    </body>
    </html>